package com.example.demo.service.impls;

import com.example.demo.domain.UserEntity;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.interfaces.IUserMyBatisService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service(value = "userMyBatisService")
public class UserMyBatisService implements IUserMyBatisService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 添加用户
     *
     * @param user 用户对象
     * @return
     */
    @Override
    public int addUser(UserEntity user) {
        return userMapper.insertSelective(user);
    }

    /*
     * 这个方法中用到了我们开头配置依赖的分页插件pagehelper
     * 很简单，只需要在service层传入参数，然后将参数传递给一个插件的一个静态方法即可；
     * pageNum 开始页数
     * pageSize 每页显示的数据条数
     * */
    @Override
    public PageInfo<UserEntity> findAllUser(int pageNum, int pageSize) {
        //将参数传给这个方法就可以实现物理分页了，非常简单。
        PageHelper.startPage(pageNum, pageSize);

        List<UserEntity> userEntities = userMapper.selectAllUser();

        PageInfo pageInfo = new PageInfo(userEntities);

        return  pageInfo;
    }
}
